<?php

/**
 * 此文件是接口的公共程序
 * 
 * 主要是用于包含常用的类和配置常量
 * @author Jerry
 * @version 1.0
 */

/**
 * 系统报错等级
 */
error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE);

//程序更目录
define('SYS_PATH','../');

//include目录
define('INCLUDE_DIR', SYS_PATH . 'include/');


//function 目录
define('FUNCTION_DIR', INCLUDE_DIR . 'functions/');

//类库目录
define('CLASS_DIR', INCLUDE_DIR . 'class/');

/**
 * 控制器目录
 */
define('CONTROLLER_DIR', INCLUDE_DIR . 'controller/system/');

//模型目录
define('MODEl_DIR', INCLUDE_DIR . 'model/system/');


//缓存目录
define('CACHE_DIR', SYS_PATH . 'cache/');

/**
 * 数据库类目录
 */
define('DB_DIR', CLASS_DIR . 'database/');

/**
 * 模板引擎目录
 */
define('TPL_DIR', CLASS_DIR . 'template/');


//包含配置文件
include_once(SYS_PATH . 'config.php');

/**
 * 开启gzip , = 1 开启 ， 0 为关闭
 */
define('ENABLE_GZIP', $sys_conf_var['system']['gzip']);


/**
 * 包含系统调式类文件
 */
include_once (CLASS_DIR . "logger.class.php");   

/**
 * 包含生成类文件
 */
include_once (CLASS_DIR . "html.class.php");  

/**
 * 包含文件上传类
 */
include_once (CLASS_DIR . "upload.class.php"); 

/**
 * 包含数据库工厂文件
 */  		
include_once (DB_DIR . "db.factory.php");


//包含程序路由类
include_once(CLASS_DIR . 'application.class.php');

/**
 * 包含模板引擎文件
 */
include_once (TPL_DIR . "compiler.class.php");

/**
 * 包含模型父类
 */
include_once (CLASS_DIR . "model.class.php");

/**
 * 包含控制器父类
 */
include_once (CLASS_DIR . "controller.class.php");


//包含公共函数库
include_once(FUNCTION_DIR . 'functions_general.php');

/**
 * 包含自定义异常处理文件
 */  		
include_once (CLASS_DIR . "exception.class.php"); 

/**
 * 包含系统session函数库
 */  		
include_once (FUNCTION_DIR . "functions_sessions.php"); 


$logger = new Logger();  //注册调试器
$logger->startTime();   //set time of program to start

$db = DBFactory::getDBConnection($sys_conf_var['db']);   //get a batabase instance
		
//处理传入参数
$in_var = parse_incoming();

//声明模板处理器
$tpl = new Compiler();

$tpl->template_dir = SYS_PATH  . 'template/system/';
$tpl->compile_dir  = CACHE_DIR  . 'compile/';
//$tpl->cache_dir   = SYS_PATH  . 'cache/';
//$tpl->lang_dir    = SYS_PATH  . 'lang/';


//sys_session_start();

$cache_model = new Cache();

if(!$cache_model->existsCache('sys')) $cache_model->makeCache('sys');
require_once(CACHE_DIR . 'sys/cache_system_info.php');


$tpl->assign("SysInfo", $sys_info);
$tpl->assignByRef("IN", $in_var);
$tpl->assign("Msg", $in_var['Msg']);

header("Content-type: text/html; charset=" . $sys_conf_var['system']['charset']);

?>